﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Cotizav.AccesoDatos
{
    public class PeriodoDocumentoDAO
    {
        public List<Entidades.PeriodoDocumento> Listar(Util.ContextoDB ctx)
        {
            SqlCommand cmd = new SqlCommand("select * from PERIODO_DOCUMENTO", ctx.GetConexion(), ctx.GetTx());
            DataTable dtPeriodoDocumento = new DataTable();
            dtPeriodoDocumento.Load(cmd.ExecuteReader());

            List<Entidades.PeriodoDocumento> lista = new List<Entidades.PeriodoDocumento>();

            foreach (DataRow fila in dtPeriodoDocumento.Rows)
            {
                Entidades.PeriodoDocumento pd = new Entidades.PeriodoDocumento();

                pd.Id = Int32.Parse(fila["ID"].ToString());
                pd.IdPeriodo = Int32.Parse(fila["IDPERIODO"].ToString());
                pd.CodigoDocumento = fila["CODIGODOCUMENTO"].ToString();
                pd.Descripcion = fila["DESCRIPCION"].ToString();
                pd.Correlativo = Int32.Parse(fila["CORRELATIVO"].ToString());

                lista.Add(pd);
            }

            return lista;
        }

        public int Actualizar(Util.ContextoDB ctx, Entidades.PeriodoDocumento updPeriodoDocumento)
        {
            SqlCommand cmd = new SqlCommand("USP_PERIODODOCUMENTO_ACTUALIZAR_CORRELATIVO", ctx.GetConexion(), ctx.GetTx());
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@ID", updPeriodoDocumento.Id);
            cmd.Parameters.AddWithValue("@CORRELATIVO", updPeriodoDocumento.Correlativo);

            int result = cmd.ExecuteNonQuery();

            return result;
        }
    }
}
